home *** CD-ROM | disk | FTP | other *** search
- DECLARE SUB ShowStr (a$, m$)
- DIM SHARED Mask(256) AS INTEGER
-
- OPEN "crackme2.com" FOR BINARY AS #1
- SEEK #1, 4
- s$ = INPUT$(&H2A5 * 2, #1)
- CLOSE
-
- OPEN "crc32.dat" FOR BINARY AS #1
- c$ = INPUT$(1024, #1)
- CLOSE
-
- FOR a% = 1 TO &H400 - 2
- f% = ASC(MID$(s$, &H116 + a%, 1)) XOR ASC(MID$(c$, 2 + a%, 1))
- m$ = m$ + CHR$(f%)
- NEXT
-
- FOR a% = 1 TO &H400 - 4
- f% = ASC(MID$(c$, 2 + a%, 1))
- Mask(f%) = ASC(MID$(m$, a% + 2, 1))
- NEXT
-
- l1% = Mask(0)
- l2% = Mask(1)
- FOR a% = 1 TO LEN(s$) STEP 2
- c1% = ASC(MID$(s$, a%, 1)) XOR l1%
- c2% = ASC(MID$(s$, a% + 1, 1)) XOR l2%
- MID$(s$, a%, 1) = CHR$(c1%)
- MID$(s$, a% + 1, 1) = CHR$(c2%)
- l1% = Mask(c1%)
- l2% = Mask(c2%)
- NEXT
-
- OPEN "ok.com" FOR OUTPUT AS #2
- PRINT #2, s$;
- CLOSE
-
- OPEN "key.dat" FOR OUTPUT AS #2
- FOR a% = 0 TO 255
- PRINT #2, CHR$(Mask(a%));
- NEXT
- CLOSE
-
- SUB ShowStr (a$, m$)
- DEF SEG = &HB800
- FOR t% = 1 TO LEN(a$)
- POKE t% * 2 - 2, ASC(MID$(a$, t%, 1))
- POKE t% * 2 - 1, ASC(MID$(m$, t%, 1))
- NEXT
- END SUB
-
-